package com.aggregate.pay.weixin;

import com.aggregate.pay.weixin.support.Client;
import com.aggregate.pay.weixin.support.client.OrderQuery;
import com.aggregate.pay.weixin.support.client.Refund;
import com.aggregate.pay.weixin.support.client.RefundNotify;
import com.aggregate.pay.weixin.support.client.RefundQuery;
import com.aggregate.pay.weixin.support.client.UnifiedOrder;

/**
 * 微信官方支付接口-接口类型
 * @author Moyq5
 * @date 2018年6月15日
 */
public enum WeixinApiType {

	/**
	 * 统一下单接口：UnifiedOrder
	 */
	UNIFIED_ORDER(UnifiedOrder.class),
	/**
	 * 订单查询接口：OrderQuery
	 */
	ORDER_QUERY(OrderQuery.class),
	/**
	 * 申请退款接口：Refund
	 */
	REFUND(Refund.class),
	/**
	 * 退款查询接口：RefundQuery
	 */
	REFUND_QUERY(RefundQuery.class),
	/**
	 * 退款通知接口：RefundNotify
	 */
	REFUND_NOTIFY(RefundNotify.class);
	
	private Class<? extends Client<?,?>> clientClass;
	
	WeixinApiType(Class<? extends Client<?,?>> clientClass) {
		this.clientClass = clientClass;
	}

	public Class<? extends Client<?,?>> getClientClass() {
		return clientClass;
	}

}
